from django.http import HttpResponse, JsonResponse, HttpResponseRedirect
from django.shortcuts import render, redirect

# Create your views here.
from django.template import loader
from django.urls import reverse

from app.models import User


def index(request):
    return HttpResponse('app index User')


# 自定义 响应
def handle_response(request):
    # res = HttpResponse('响应对象内容')
    # res.content_type = 'text/html'
    # res.status_code = 400 # 状态吗
    # return res
    #
    # # 模板渲染
    # res = render(request, 'index.html')
    # return res

    # return JsonResponse({'name':'tome'}) # 通过字典 返回json字符
    return JsonResponse([1, 2, 3, 4], safe=False)  # 字典/列表


def handle_redirect(request):
    # return HttpResponseRedirect('/user/') # 重定向到指定路由
    # return redirect('/user/show/{}/{}/'.format('tom', 30))   # 重定向 带参数
    # return redirect('/user/show/tom/50/')
    # return redirect('https://www.baidu.com/') # 绝对路径 外部路径

    # 反向定位： 应用命名空间 name 来确定
    return redirect(reverse('App:index'))
    return redirect(reverse('App:index', args=(1, 2)))  # 如果args中1个参数，后面要加 ',' 表示元组
    return redirect(reverse('App:index', kwargs={'name': 'tome', 'age': '1'}))  # 如果参数有名字必须使用关键字参数


def home(request):
    # return HttpResponse('Home Page')
    # 获取数据
    users = User.objects.all()
    # 使用 模版
    return render(request, 'index.html', context={'title': 'Django', 'name': 'World', 'users': users})
    # return render(request, 'index.html', context=locals()) # 使用当前变量 users

def show(request, age):
    print(age)
    return HttpResponse('age :%d' % age)


# name 只能匹配 由数字，字母和_组成的字符串
def list_user(request, name):
    print(name, type(name))
    return HttpResponse(name)


# 获取任何字符
def access(request, path):
    print(path, type(path))
    return HttpResponse(path)


def get_phone(request, phone):
    print(phone, type(phone))
    return HttpResponse(phone)


def get_tel(request, tel):
    print(tel, type(tel))
    return HttpResponse('命名组' + str(tel))

def app_template(request):
    return render(request,'app_temp.html')
